
// 全局路由中间件，用于拦截全局路由（类似与 vue3 的全局导航守卫，可以配置白名单/黑名单来拦截页面，部分登录后才可以访问）
// 开发指南： 需要同时考虑到服务端、客户端情况， 部分代码只能在客户端才能执行

// 配置黑名单
const blackList = ['/middleware', '/shopcart']

export default defineNuxtRouteMiddleware((to, from) => {
    //需要登录后才能访问页面(访问页面时需要token)
    if(blackList.includes(to.path)){
        // 思考：需要服务端、客户端都可以获取到token(应用cookie的同源策略可实现)
        let accessToken = useUserStore().token;
        if(!accessToken){
            return navigateTo({
                path: '/login',
                query: {
                    result: 401,
                    message: "请先登录"
                }
            })
        }
    }
})